package ufc.principal;
import java.util.Vector;


public class Grafo {

        private Vector<Aresta> arestas;
        
        public Grafo() {
                arestas = new Vector<Aresta>();
        }
        public void setAresta(Aresta aresta){
        	
        	
        }
        
        
        
        public void setArestas(Vector<Aresta> arestas) {
                this.arestas = arestas;
        }
        
        public Vector<Aresta> getArestas() {
                return arestas;
        }
        
        public boolean verificarCiclo() { // mtodo para detectar a existncia de ciclos no grafo
                boolean resultado = false;
                Vector<Aresta> arestas = this.arestas;
                Aresta aux = null;
                for (int i = 0; i < arestas.size(); i++) {
                        aux = arestas.get(i);
                        for (int j = 0; j < arestas.size(); j++) { // DUVIDA: precisa checar todas as arestas? ou o J comearia com valor igual a i? (int j = i) ?
                                if (!arestas.get(i).equals(arestas.get(j))) { // verifica se no  a mesma aresta
                                        if (aux.getVerticeFim().equals(arestas.get(j).getVerticeInicio())) { // se o vertice fim da primeira aresta for igual ao vertice inicial da outra ->
                                                if (arestas.get(i).getVerticeInicio().equals(arestas.get(j).getVerticeFim())) {
                                                        System.out.println("Deadlock detectado");
                                                        resultado = true;
                                                        break;
                                                } else {
                                                        aux = arestas.get(j);
                                                }
                                        }
                                }
                        }
                }
                return resultado;
        }
        
}

	
